"""
实例方法：在类里面直接定义的方法就是实例方法(函数)，在类外面只能通过对象名.的方式去调用
类方法：被@classmethod装饰的方法，在类外面可以通过对象名.的方式调用,也可以通过类名.的方式去调用
(一般配合和类属性一起使用)
静态方法：被@staticmethod装饰的方法，在类外面可以通过对象名.的方式调用,也可以通过类名.的方式去调用
(如果方法里面不需要使用到self和cls的属性和方法)
"""
class Person():
    __age = 18
    def onFoot(self): # 实例方法 self-实例对象
        print("用脚走路")
        # print(self.age)

    @classmethod
    def fair(cls):  # 类方法 cls-类Person
        # print(cls)
        print("长头发")
        # cls.__age = 30
        # print(cls.__age)

    @staticmethod
    def face():
        print("瓜子脸")

p = Person()
p.onFoot()
# Person.onFoot()
# p.fair()
Person.fair()
p.face()
Person.face()